//
// Created by Administrator on 2023/7/12.
// 高精度计算--subtract
// OJ:https://www.luogu.com.cn/problem/P2142 通过
// OJ:http://ybt.ssoier.cn:8088/problem_show.php?pid=1169 通过
//


/*
 * 99-99=0
 * 22-11=11
 * 111-12=99
 * 166-32=134
 * 11-122=-111
 * 111-122=-11
 * 30141-8160=21981
 * 12-14=-2
 */
#include <iostream>

using namespace std;

// 如果a>b那么a-b就是负数, 返回true
// 前提a,b的长度相等, 从最高位逐个向低位比较
bool isNegative(string &ap, string &bp)
{
//    cout<<ap<<endl;
//    printf("%s",bp.c_str());
    for (int i = 0; i < ap.size(); ++i)
    {
        if (ap[i] - '0' > bp[i] - '0')
            return false;
        else if (ap[i] - '0' < bp[i] - '0')
            return true;
            // 如果当前位相等, 继续比较下一位
        else
            continue;
    }
    return false;
}

int main()
{
    // a-b
    string a = "111", b = "100"; // 11
    a = "99", b = "99"; //0
    a = "11", b = "122";  // -111
    a = "111", b = "122"; // -11
    a = "30141", b = "8160"; //21981
    a = "8160", b = "30141"; //-21981
//    a="12",b="14";  // -2
//    cin>>a>>b;
//    printf("%s-%s=\n",a.c_str(),b.c_str());
    if (a == b)
    {
        cout << 0;
        return 0;
    }
    // 负数标记
    bool negative;
    int asize = a.size(), bsize = b.size();
    int dis = abs(asize - bsize);
    // 短的字符串前边补零 使两个串长度相等
    string addZeroString;
    while (dis--)
    {
        addZeroString += "0";
    }
    if (asize >= bsize)
    {
        b = addZeroString + b;
    } else
    {
        // 被减数短 那结果必然是负数
        negative = true;
        a = addZeroString + a;
    }
//    cout<<isNegative(a,b);
    negative = isNegative(a, b);
    if (negative)
    {
        cout << "-";
        swap(a, b);
    }
    int ret[a.size()] = {0};
    for (int i = a.size() - 1; i >= 0; --i)
    {
        int aa = a[i] - '0';
        int bb = b[i] - '0';
        // 考虑到借位 如果 借位后的aa>=bb 就aa-bb
        if ((ret[i] + aa) >= bb)
        {
            ret[i] += aa - bb;
        } else
        {
            ret[i] += aa - bb + 10;
            ret[i - 1]--;
        }
    }

    // 打印结果
    bool zero = true;
    for (int j:ret)
    {
        if (j == 0 && zero)
        {
            continue;
        } else
        {
            zero = false;
        }
        cout << j;
    }
    return 0;
}